package cn.itsource.interceptor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 配置类：登录拦截
 * 声明当前类是一个配置类
 */
@Configuration
public class LoginConfig implements WebMvcConfigurer {

    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**") //拦截所有
                //为什么要放行minio：前后端分离中不能使用session，我们在main.js配置了axios请求在前后端分离中可以使用session
                //我们的文件上传接口/minio，不是axios请求 - 不能使用session。就会在登录拦截中获取不到session中的登录
                //就会返回json数据【"{\"success\":false,\"message\":\"toLogin\"}"】，由于不是axios请求就不会邹axios的后置拦截器
                .excludePathPatterns("/login","/minio")
                .excludePathPatterns("/course/importData","/course/exportData")
                //放行swagger
                .excludePathPatterns("/swagger-resources/**")
                .excludePathPatterns("/webjars/**")
                .excludePathPatterns("/v2/**")
                .excludePathPatterns("/swagger-ui.html/**");

    }
}